StupidBeauty
Read times:1625Posted at:Tue May 31 05:13:22 2011
- no title specified

BioPython教程翻译:3.9  翻译,3.9  Translation

本文来自于Kate dNA的勃客: http://stupidbeauty.com/KNA/2011/05/biopython%e6%95%99%e7%a8%8b%e7%bf%bb%e8%af%91%ef%bc%9a3-9-%e7%bf%bb%e8%af%91%ef%bc%8c3-9-translation/ 英文原文来自于 http://biopython.org/DIST/docs/tutorial/Tutorial.html#htoc25

3.9  翻译

在上一节中,我们研究咯转录 ,现在让我们来把这个mRNA 翻译成蛋白质序列-我们再次利用Seq 对象的一个生物学方法

>>> from Bio.Seq import Seq

>>> from Bio.Alphabet import IUPAC

>>> messenger_rna = Seq("AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGAUAG", IUPAC.unambiguous_rna)

>>> messenger_rna

Seq('AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGAUAG', IUPACUnambiguousRNA())

>>> messenger_rna.translate()

Seq('MAIVMGR*KGAR*', HasStopCodon(IUPACProtein(), '*'))

你还可以直接从编码链DNA 序列翻译过来

>>> from Bio.Seq import Seq

>>> from Bio.Alphabet import IUPAC

>>> coding_dna = Seq("ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG", IUPAC.unambiguous_dna)

>>> coding_dna

Seq('ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG', IUPACUnambiguousDNA())

>>> coding_dna.translate()

Seq('MAIVMGR*KGAR*', HasStopCodon(IUPACProtein(), '*'))

应当注意,在上面的蛋白质序列中,除咯最后的停止符号以外 ,在中间也有一个停止字符。这个例子是有意设计的 ,因为它能引出某些可选参数,包括不同的翻译表 (基因编码 (Genetic Codes) )。

Biopython 中可用的翻译表是基于NCBI 上的翻译表(参见此教程的下一小节)。默认情况下 ,在翻译过程中会使用 标准 基因编码(编号为 1 的NCBI编码表)。假设我们在处理一个线粒体序列。我们需 要告诉翻译函数要使用适当的基因编码:

>>> coding_dna.translate(table="Vertebrate Mitochondrial")

Seq('MAIVMGRWKGAR*', HasStopCodon(IUPACProtein(), '*'))

你还可以使用NCBI 编码表编号来指定编码表,它更短,并且通常会包含在GenBank 文件的特性注释中

>>> coding_dna.translate(table=2)

Seq('MAIVMGRWKGAR*', HasStopCodon(IUPACProtein(), '*'))

现在,你可能想要翻译到第一个停止符号就结束(自然界就是这样的):

>>> coding_dna.translate()

Seq('MAIVMGR*KGAR*', HasStopCodon(IUPACProtein(), '*'))

>>> coding_dna.translate(to_stop=True)

Seq('MAIVMGR', IUPACProtein())

>>> coding_dna.translate(table=2)

Seq('MAIVMGRWKGAR*', HasStopCodon(IUPACProtein(), '*'))

>>> coding_dna.translate(table=2, to_stop=True)

Seq('MAIVMGRWKGAR', IUPACProtein())

注意,当你使用to_stop 参数时,终止密码子本身不会被翻译出来-因此停止符号也不会出现在你的蛋白质序列的末尾

如果你不喜欢采用默认的星号做停止符号的话,你甚至还可以指定一个停止字符:

>>> coding_dna.translate(table=2, stop_symbol="@")

Seq('MAIVMGRWKGAR@', HasStopCodon(IUPACProtein(), '@'))

现在,假设你有一个完整编码序列CDS,它是一个有整数个数的密码子(也就是说 ,长度是3的整数倍 )的核苷酸序列(比如说 ,信使 RNA–已经过修剪),以一个启动密码子开始,以一个终止密码子结束,并且在中间没有终止密码子 。一般来说 ,给定一个完整的编码序列的话 ,默认的翻译方法会为你做出正确的事 (也许你会指定 to_stop 选项)。然而,要是你的序列使用咯一个非标准的启动密码子勒 ?对于细菌经常发生这种事–比如说E. coli K12:中的基因yaaX:

>>> from Bio.Seq import Seq

>>> from Bio.Alphabet import generic_dna

>>> gene = Seq("GTGAAAAAGATGCAATCTATCGTACTCGCACTTTCCCTGGTTCTGGTCGCTCCCATGGCA" +

...            "GCACAGGCTGCGGAAATTACGTTAGTCCCGTCAGTAAAATTACAGATAGGCGATCGTGAT" +

...            "AATCGTGGCTATTACTGGGATGGAGGTCACTGGCGCGACCACGGCTGGTGGAAACAACAT" +

...            "TATGAATGGCGAGGCAATCGCTGGCACCTACACGGACCGCCGCCACCGCCGCGCCACCAT" +

...            "AAGAAAGCTCCTCATGATCATCACGGCGGTCATGGTCCAGGCAAACATCACCGCTAA",

...            generic_dna)

>>> gene.translate(table="Bacterial")

Seq('VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDH...HR*',

HasStopCodon(ExtendedIUPACProtein(), '*')

>>> gene.translate(table="Bacterial", to_stop=True)

Seq('VKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDH...HHR',

ExtendedIUPACProtein())

在细菌的基因编码中 GTG 是一个有效的启动密码子,而且,尽管它 一般情况下 是编码 缬氨酸 ,但是如果是用作启动密码子的话,它应当被翻译成 甲硫氨酸 。如果你告诉Biopython 说你的序列是一个完整 的CDS 的话 ,就会发生这种事:

>>> gene.translate(table="Bacterial", cds=True)

Seq('MKKMQSIVLALSLVLVAPMAAQAAEITLVPSVKLQIGDRDNRGYYWDGGHWRDH...HHR',

ExtendedIUPACProtein())

除咯告诉将某个启动密码子翻译成甲硫氨酸之外 ,使用这个选项还能确认你的序列真的是一个有效的CDS (如果不是的话 ,你会遇到一个异常 )。

16.1.2 小节中的例子将 Seq 对象的翻译方法与Bio.SeqIO 结合,以进行序列的输入/输出。

注意: Seq对象的translate 方法是在Biopython 1.49 中新加的。对于旧版本 ,你需要使用 Bio.Seq 模块的 translate 函数,参见 3.14 小节。 cds 选项是在Biopython 1.51 中新加的 ,并且在旧版本的Biopython 中,无法轻易地做到这一点

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands